package com.cndym.exception;

import java.util.HashMap;
import java.util.Map;

/**
 * User：邓玉明 Date：Nov 25, 2010 Time：11:13:27 AM 0开头是系统错误 1开头是账户错误 2开头是投注 3开头是查询
 */

public class CommissionErrCode {
    private static Map<String, String> map = new HashMap<String, String>();
    private static Map<String, String> alarm = new HashMap<String, String>();
    private static Map<String, Integer> level = new HashMap<String, Integer>();

    /**
     * 成功
     */
    public static final String E0000 = "0000";
    /**
     * MD5验证失败
     */
    public static final String E0001 = "0001";
    /**
     * schema验证失败
     */
    public static final String E0002 = "0002";
    /**
     * 参数错误
     */
    public static final String E0003 = "0003";
    /**
     * 失败
     */
    public static final String E0999 = "0999";

    ////////////////联盟相关错误码start/////////////////////
    //以8开头的都是接入商相关的错误码，80**为商户信息相关，81**为投注相关，82**为查询相关
    /**
     * 协议格式有误
     */
    public static final String E8001 = "8001";
    /**
     * 帐户已被锁定
     */
    public static final String E8003 = "8003";
    /**
     * 帐户余额不足
     */
    public static final String E8004 = "8004";
    /**
     * 彩种不存在
     */
    public static final String E8101 = "8101";
    /**
     * 投注类型不正确
     */
    public static final String E8102 = "8102";
    /**
     * 实际金额与传入金额不符
     */
    public static final String E8103 = "8103";
    /**
     * 系统订单号重复
     */
    public static final String E8104 = "8104";
    /**
     * 投注期次已截期
     */
    public static final String E8105 = "8105";
    /**
     * 投注期次不存在
     */
    public static final String E8106 = "8106";
    /**
     * 投注期次未开售
     */
    public static final String E8107 = "8107";
    /**
     * 方案提交失败
     */
    public static final String E8108 = "8108";
    /**
     * 投注彩种暂停销售
     */
    public static final String E8109 = "8109";
    /**
     * 查询的方案不存在
     */
    public static final String E8201 = "8201";
    /**
     * 查询的期次不存在
     */
    public static final String E8202 = "8202";
    /**
     * 查询的期次还未返奖
     */
    public static final String E8203 = "8203";
    ////////////////联盟相关错误码end/////////////////////

    static {
        init();
    }

    public static void init() {
    	
        map.put(E6001, "请求参数错");
        map.put(E6002, "新增订单返点扩展表异常");
        map.put(E6003, "更新订单返点扩展表异常");
        map.put(E6004, "获取订单返点扩展表集合异常");
        map.put(E6005, "获取订单返点扩展记录异常");
        map.put(E6006, "订单返点扩展记录已存在");
        map.put(E6007, "获取订单方案记录异常");
        map.put(E6008, "获取订单方案记录为空");
        map.put(E6009, "获取返点用户关系集合错误");
        map.put(E6010, "获取返点用户关系集合总条数异常");
        map.put(E6011, "新增返点用户关系对象异常");
        map.put(E6012, "更新返点用户关系对象异常");
        map.put(E6013, "查找返点用户关系对象异常");
        map.put(E6014, "返点用户关系对象不存在");
        map.put(E6015, "返点用户关系对象已经存在");
        map.put(E6016, "返点用户关系不是代理身份");
        map.put(E6017, "未更新到返点用户关系");
        map.put(E6018, "无下级返点用户关系");
        map.put(E6019, "获取返点详细集合异常");
        map.put(E6020, "获取返点详细异常");
        map.put(E6021, "新增返点详细异常");
        map.put(E6022, "更新返点详细异常");
        map.put(E6023, "未更新到返点详细");
        map.put(E6024, "返点比例设置异常");
        map.put(E6025, "返点不包含指定彩种");
        map.put(E6026, "返点已经存在");
        map.put(E6027, "获取返点结算记录集合异常");
        map.put(E6028, "新增返点结算记录对象异常");
        map.put(E6029, "获取返点结算记录对象异常");
        map.put(E6030, "不提供操作自己数据功能");
        map.put(E6031, "返点集合数据不匹配");
        map.put(E6032, "返点比例不满足上下级要求");
        map.put(E6033, "订单为空");
        map.put(E6034, "订单返点已经结算过");
        map.put(E6035, "反向查找返点关系为空");
        map.put(E6036, "返点信息不存在");
        map.put(E6037, "返点比例非法");
        map.put(E6038, "计算单条订单返点异常");
        map.put(E6039, "获取订单错误异常");
        map.put(E6040, "获取订单为空");
        map.put(E6041, "返点比例小于直属下级用户");
        map.put(E6042, "获取下级最大返点比例异常");
        map.put(E6043, "创建日志错误");
        map.put(E6044, "用户不存在");
        map.put(E6045, "请被调整用户完善手机号，真实姓名，身份证号信息！");
        map.put(E6046, "当前用户代理级别没有调整相关权限");
        map.put(E6047, "超过关系代理允许最大级数");

        alarm.put("", "");

        level.put("", 0);

    }

    public static String codeToMsg(String code) {
        if (map.containsKey(code)) {
            return map.get(code);
        }
        throw new CndymException(E0999);
    }

    public static String codeToAlarm(String code) {
        if (alarm.containsKey(code)) {
            return alarm.get(code);
        }
        return null;
    }

    public static Integer codeToLevel(String code) {
        if (level.containsKey(code)) {
            return level.get(code);
        }
        return -1;
    }
    /*
     * 请求参数错误
     */
    public static final String E6001 = "6001";
	
	/*
     * 新增订单返点扩展表异常
     */
    public static final String E6002 = "6002";

	/*
     * 更新订单返点扩展表异常
     */
    public static final String E6003 = "6003";

	/*
     * 获取订单返点扩展表集合异常
     */
    public static final String E6004 = "6004";

	/*
     * 获取订单返点扩展记录异常
     */
    public static final String E6005 = "6005";

	/*
     * 订单返点扩展记录已存在
     */
    public static final String E6006 = "6006";

	/*
     * 获取订单方案记录异常
     */
    public static final String E6007 = "6007";

	/*
     * 获取订单方案记录为空
     */
    public static final String E6008 = "6008";
	
	/*
	 * 获取返点用户关系集合异常
	 */
	public static final String E6009 = "6009";

	/*
     * 获取返点用户关系集合总条数异常
     */
    public static final String E6010 = "6010";

	/*
     * 新增返点用户关系对象异常
     */
    public static final String E6011 = "6011";

	/*
     * 更新返点用户关系对象异常
     */
    public static final String E6012 = "6012";

	/*
     * 查找返点用户关系对象异常
     */
    public static final String E6013 = "6013";

	/*
     * 返点用户关系对象不存在
     */
    public static final String E6014 = "6014";

	/*
     * 返点用户关系对象已经存在
     */
    public static final String E6015 = "6015";

	/*
     * 返点用户关系不是代理身份
     */
    public static final String E6016 = "6016";

	/*
     * 未更新到返点用户关系
     */
    public static final String E6017 = "6017";

	/*
     * 无下级返点用户关系
     */
    public static final String E6018 = "6018";

	/*
     * 获取返点详细集合异常
     */
    public static final String E6019 = "6019";

	/*
     * 获取返点详细异常
     */
    public static final String E6020 = "6020";

	/*
     * 新增返点详细异常
     */
    public static final String E6021 = "6021";

	/*
     * 更新返点详细异常
     */
    public static final String E6022 = "6022";

	/*
     * 未更新到返点详细
     */
    public static final String E6023 = "6023";

	/*
     * 返点比例设置异常
     */
    public static final String E6024 = "6024";

	/*
     * 返点不包含指定彩种
     */
    public static final String E6025 = "6025";

	/*
     * 返点已经存在
     */
    public static final String E6026 = "6026";

	/*
     * 获取返点结算记录集合异常
     */
    public static final String E6027 = "6027";

	/*
     * 新增返点结算记录对象异常
     */
    public static final String E6028 = "6028";

	/*
     * 获取返点结算记录对象异常
     */
    public static final String E6029 = "6029";

	/*
     * 不提供操作自己数据功能
     */
    public static final String E6030 = "6030";

	/*
     * 返点集合数据不匹配
     */
    public static final String E6031 = "6031";

	/*
     * 返点比例不满足上下级要求错误
     */
    public static final String E6032 = "6032";

	/*
     * 订单为空
     */
    public static final String E6033 = "6033";

	/*
     * 订单返点已经结算过
     */
    public static final String E6034 = "6034";

	/*
     * 反向查找返点关系为空
     */
    public static final String E6035 = "6035";

	/*
     * 返点信息不存在
     */
    public static final String E6036 = "6036";

	/*
     * 返点比例非法
     */
    public static final String E6037 = "6037";

	/*
     * 计算单条订单返点异常
     */
    public static final String E6038 = "6038";

	/*
     * 获取订单错误异常
     */
    public static final String E6039 = "6039";

	/*
     * 获取订单为空
     */
    public static final String E6040 = "6040";

	/*
     * 犯点比例小于直属下级用户
     */
    public static final String E6041 = "6041";

	/*
     * 获取下级最大返点比例异常
     */
    public static final String E6042 = "6042";

	/*
     * 创建日志错误
     */
    public static final String E6043 = "6043";
    
    /*
     * 用户不存在
     */
    public static final String E6044 = "6044";
    
    /*
     * 被调用户身份信息不完整
     */
    public static final String E6045 = "6045";
    
    /*
     * 没有调整权限
     */
    public static final String E6046 = "6046";
    
    /*
     * 超过关系代理允许最大级数
     */
    public static final String E6047 = "6047";
}
